import type { LessonCourseType } from '@/enums/course'

interface StudentDict {
  id: number
  name: string
  username: string
}

interface CourseDict {
  id: number
  name: string
}

export interface LessonGroupLessonItem {
  lessonId: number
  type: LessonCourseType
  scheduledStartTime: string
  scheduledEndTime: string
  actuallyStartTime: string | null
  actuallyEndTime: string | null
  student: StudentDict
  course: CourseDict
  courses: CourseDict[]
}

export interface CourseScheduleLessonDateGroup {
  lessonDate: string
  experienceLessonNum: number
  signupLessonNum: number
  reviewLessonNum: number
  lessons: LessonGroupLessonItem[]
}

export interface LessonRequestParams {
  cursor: number
  size: number
  filters: {
    status: number | string
    type: LessonCourseType | null
    student: string
    lessonDate: string
  }
}

export interface LessonResponse {
  hasMore: boolean
  nextCursor: number
  list: CourseScheduleLessonDateGroup[]
}
